//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Log.print('service module: sizitisi');
Service.sizitisi = {};

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Service.sizitisi.sxolio = function(nodereq) {
	var skiniko = nodereq.skinikoGet(), pektis, sxolio, trapezi, query, conn;

	if (nodereq.isvoli()) return;
	pektis = nodereq.loginGet();

	if (nodereq.denPerastike('sxolio', true)) return;
	sxolio = nodereq.urlGet('sxolio');

	if (nodereq.denPerastike('trapezi', true)) return;
	trapezi = parseInt(nodereq.urlGet('trapezi'));
	if (trapezi && (trapezi != nodereq.sinedriaGet().trapeziGet())) return nodereq.error('Λάθος τραπέζι');

	query = 'INSERT INTO `sizitisi` (`pektis`, `sxolio`';
	if (trapezi) query += ', `trapezi`';
	query += ') VALUES (' + globals.json(pektis) + ', ' + globals.json(sxolio);
	if (trapezi) query += ', ' + trapezi;
	query += ')';
	conn = DB.connection();
	conn.queryRaw(query, function(err, res) {
		var sizitisi, kinisi;

		conn.free();
		if (err || (res.affectedRows != 1)) return nodereq.error('Απέτυχε η εισαγωγή σχολίου στην database');
		nodereq.end();

		sizitisi = new Sizitisi({
			kodikos: res.insertId,
			pektis: pektis,
			sxolio: sxolio,
			pote: globals.tora(),
		});
		if (trapezi) nodereq.trapeziGet().sizitisiAdd(sizitisi);
		else skiniko.sizitisiAdd(sizitisi);

		kinisi = new Kinisi('SZ').set({
			k: sizitisi.kodikos,
			p: sizitisi.pektis,
			s: sizitisi.sxolio,
		});
		if (trapezi) kinisi.t = trapezi;
		skiniko.kinisiAdd(kinisi);
	});
}
